﻿using System;

namespace HslCommunication
{
	/// <summary>
	/// 用于PLC通讯及ModBus自定义数据类型的读写操作
	/// </summary>
	/// <remarks>
	/// 主要应用于设备实现设备类的自定义的数据类型读写，以此达到简化代码的操作，但是有一个前提，该数据处于连续的数据区块
	/// </remarks>
	/// <example>
	/// 此处举例读取三菱的自定义的数据，先实现接口，然后再读写操作
	/// <code lang="cs" source="HslCommunication_Net45.Test\Documentation\Samples\Core\NetworkDeviceBase.cs" region="IDataTransfer Example" title="DataMy示例" />
	/// 接下来就可以实现数据的读取了
	/// <code lang="cs" source="HslCommunication_Net45.Test\Documentation\Samples\Core\NetworkDeviceBase.cs" region="ReadCustomerExample" title="ReadCustomer示例" />
	/// </example>
	// Token: 0x02000013 RID: 19
	public interface IDataTransfer
	{
		/// <summary>
		/// 读取的数据长度，对于西门子，等同于字节数，对于三菱和Modbus为字节数的一半
		/// </summary>
		// Token: 0x17000045 RID: 69
		// (get) Token: 0x060000C7 RID: 199
		ushort ReadCount { get; }

		/// <summary>
		/// 从字节数组进行解析实际的对象
		/// </summary>
		/// <param name="Content">从远程读取的数据源</param>
		// Token: 0x060000C8 RID: 200
		void ParseSource(byte[] Content);

		/// <summary>
		/// 将对象生成字符源，写入PLC中
		/// </summary>
		/// <returns>准备写入到远程的数据</returns>
		// Token: 0x060000C9 RID: 201
		byte[] ToSource();
	}
}
